package com.supermarket.mapper;

import com.supermarket.entity.ArticleComment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ArticleCommentMapper {
    // 插入评论
    int insertComment(ArticleComment comment);

    // 删除评论
    int deleteComment(@Param("id") Integer id);

    // 根据ID查询评论
    ArticleComment selectCommentById(@Param("id") Integer id);

    // 根据文章ID查询所有评论
    List<ArticleComment> selectCommentsByArticleId(@Param("articleId") Integer articleId);

    // 根据用户ID查询所有评论
    List<ArticleComment> selectCommentsByUserId(@Param("userId") Integer userId);

    // 查询评论回复
    List<ArticleComment> selectRepliesByParentId(@Param("parentId") Integer parentId);

    // 统计文章评论数
    int countCommentsByArticleId(@Param("articleId") Integer articleId);

    // 根据文章ID删除所有评论
    int deleteCommentsByArticleId(@Param("articleId") Integer articleId);

    // 根据用户ID删除所有评论
    int deleteCommentsByUserId(@Param("userId") Integer userId);

    // 查询文章的一级评论（不包含回复）
    List<ArticleComment> selectRootCommentsByArticleId(@Param("articleId") Integer articleId);

    // 分页查询文章评论
    List<ArticleComment> selectCommentsByArticleIdWithPagination(
            @Param("articleId") Integer articleId,
            @Param("offset") Integer offset,
            @Param("limit") Integer limit);
} 